<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>shark::HypervolumeContributionApproximator Struct Reference</title>
<script type="text/javaScript" src="search/search.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3.0.1/es5/tex-mml-chtml.js"></script>
<script src="../../mlstyle.js"></script>
<link href="../css/besser.css" rel="stylesheet" type="text/css"/>
</head>
<!-- pretty cool: each body gets an id tag which is the basename of the web page  -->
<!--              and allows for page-specific CSS. this is client-side scripted, -->
<!--              so the id will not yet show up in the served source code -->
<script type="text/javascript">
    jQuery(document).ready(function () {
        var url = jQuery(location).attr('href');
        var pname = url.substr(url.lastIndexOf("/")+1, url.lastIndexOf(".")-url.lastIndexOf("/")-1);
        jQuery('#this_url').html('<strong>' + pname + '</strong>');
        jQuery('body').attr('id', pname);
    });
</script>
<body>
    <div id="shark_old">
        <div id="wrap">
            <div id="header">
                <div id="site-name"><a href="../../sphinx_pages/build/html/index.html">Shark machine learning library</a></div>
                <ul id="nav">
                    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/installation.html">Installation</a>
                    </li>
		    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/tutorials/tutorials.html">Tutorials</a>
                    </li>
		    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/benchmark.html">Benchmarks</a>
                    </li>
                    <li class="active">
                        <a href="classes.html">Documentation</a>
                        <ul>
                            <li class="first"></li>
                            <li><a href="../../sphinx_pages/build/html/rest_sources/quickref/quickref.html">Quick references</a></li>
                            <li><a href="classes.html">Class list</a></li>
                            <li class="last"><a href="group__shark__globals.html">Global functions</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </div>
<div id="doxywrapper">
<!--
    <div id="global_doxytitle">Doxygen<br>Documentation:</div>
-->
    <div id="navrow_wrapper">
<!-- Generated by Doxygen 1.9.8 -->
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceshark.html">shark</a></li><li class="navelem"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html">HypervolumeContributionApproximator</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="structshark_1_1_hypervolume_contribution_approximator-members.html">List of all members</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a>  </div>
  <div class="headertitle"><div class="title">shark::HypervolumeContributionApproximator Struct Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Approximately determines the point of a set contributing the least hypervolume.  
 <a href="structshark_1_1_hypervolume_contribution_approximator.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_hypervolume_contribution_approximator_8h_source.html">shark/Algorithms/DirectSearch/Operators/Hypervolume/HypervolumeContributionApproximator.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator_1_1_point.html">Point</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Models a point and associated information for book-keeping purposes.  <a href="structshark_1_1_hypervolume_contribution_approximator_1_1_point.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aceb0bba3d66b599e4762a59008da544a" id="r_aceb0bba3d66b599e4762a59008da544a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#aceb0bba3d66b599e4762a59008da544a">HypervolumeContributionApproximator</a> ()</td></tr>
<tr class="memdesc:aceb0bba3d66b599e4762a59008da544a"><td class="mdescLeft">&#160;</td><td class="mdescRight">C'tor.  <br /></td></tr>
<tr class="separator:aceb0bba3d66b599e4762a59008da544a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57c159dc8900f273d0f0fd58147ee6d4" id="r_a57c159dc8900f273d0f0fd58147ee6d4"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a57c159dc8900f273d0f0fd58147ee6d4">delta</a> () const</td></tr>
<tr class="separator:a57c159dc8900f273d0f0fd58147ee6d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32cfcca40e4510e996dd41c9e3b428e1" id="r_a32cfcca40e4510e996dd41c9e3b428e1"><td class="memItemLeft" align="right" valign="top">double &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a32cfcca40e4510e996dd41c9e3b428e1">delta</a> ()</td></tr>
<tr class="separator:a32cfcca40e4510e996dd41c9e3b428e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa63c8502accc68b992534217eb32169" id="r_aaa63c8502accc68b992534217eb32169"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#aaa63c8502accc68b992534217eb32169">epsilon</a> () const</td></tr>
<tr class="separator:aaa63c8502accc68b992534217eb32169"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bc48c99de5ede9fa446b9b65403b27e" id="r_a4bc48c99de5ede9fa446b9b65403b27e"><td class="memItemLeft" align="right" valign="top">double &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a4bc48c99de5ede9fa446b9b65403b27e">epsilon</a> ()</td></tr>
<tr class="separator:a4bc48c99de5ede9fa446b9b65403b27e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd86ee5e8fa2705b792017a024295c0c" id="r_afd86ee5e8fa2705b792017a024295c0c"><td class="memTemplParams" colspan="2">template&lt;typename Archive &gt; </td></tr>
<tr class="memitem:afd86ee5e8fa2705b792017a024295c0c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#afd86ee5e8fa2705b792017a024295c0c">serialize</a> (Archive &amp;archive, const unsigned int version)</td></tr>
<tr class="separator:afd86ee5e8fa2705b792017a024295c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d9f9832db56f043a2f389ad5a386b55" id="r_a5d9f9832db56f043a2f389ad5a386b55"><td class="memTemplParams" colspan="2">template&lt;class Set , class <a class="el" href="_c_svm_linear_8cpp.html#ab106d665148183a2dc94dcf8716c9203">VectorType</a> &gt; </td></tr>
<tr class="memitem:a5d9f9832db56f043a2f389ad5a386b55"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structshark_1_1_key_value_pair.html">KeyValuePair</a>&lt; double, std::size_t &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a5d9f9832db56f043a2f389ad5a386b55">smallest</a> (Set const &amp;points, std::size_t k, <a class="el" href="_c_svm_linear_8cpp.html#ab106d665148183a2dc94dcf8716c9203">VectorType</a> const &amp;reference) const</td></tr>
<tr class="memdesc:a5d9f9832db56f043a2f389ad5a386b55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the point contributing the least hypervolume to the overall set of points.  <br /></td></tr>
<tr class="separator:a5d9f9832db56f043a2f389ad5a386b55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d452284d5ae1b104a992ce605e03baa" id="r_a6d452284d5ae1b104a992ce605e03baa"><td class="memTemplParams" colspan="2">template&lt;class Set &gt; </td></tr>
<tr class="memitem:a6d452284d5ae1b104a992ce605e03baa"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structshark_1_1_key_value_pair.html">KeyValuePair</a>&lt; double, std::size_t &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a6d452284d5ae1b104a992ce605e03baa">smallest</a> (Set const &amp;points, std::size_t k) const</td></tr>
<tr class="memdesc:a6d452284d5ae1b104a992ce605e03baa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the points with smallest contribution.  <br /></td></tr>
<tr class="separator:a6d452284d5ae1b104a992ce605e03baa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a9171724d5683e143759001a10f9bbb2c" id="r_a9171724d5683e143759001a10f9bbb2c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a9171724d5683e143759001a10f9bbb2c">m_startDeltaMultiplier</a></td></tr>
<tr class="separator:a9171724d5683e143759001a10f9bbb2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40c556d7c0d1176e67f795cb30abbcb7" id="r_a40c556d7c0d1176e67f795cb30abbcb7"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a40c556d7c0d1176e67f795cb30abbcb7">m_multiplierDelta</a></td></tr>
<tr class="separator:a40c556d7c0d1176e67f795cb30abbcb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47929916ab69b0e384479ae4c20cdb62" id="r_a47929916ab69b0e384479ae4c20cdb62"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a47929916ab69b0e384479ae4c20cdb62">m_minimumMultiplierDelta</a></td></tr>
<tr class="separator:a47929916ab69b0e384479ae4c20cdb62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16d77f5544fdf01e8bfdd0427b3e00d3" id="r_a16d77f5544fdf01e8bfdd0427b3e00d3"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a16d77f5544fdf01e8bfdd0427b3e00d3">m_gamma</a></td></tr>
<tr class="separator:a16d77f5544fdf01e8bfdd0427b3e00d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f253b29cea34ab461913fdf1e77017d" id="r_a7f253b29cea34ab461913fdf1e77017d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a7f253b29cea34ab461913fdf1e77017d">m_errorProbability</a></td></tr>
<tr class="memdesc:a7f253b29cea34ab461913fdf1e77017d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The error probability.  <br /></td></tr>
<tr class="separator:a7f253b29cea34ab461913fdf1e77017d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4ee55eed212e9d241500366342088d9" id="r_aa4ee55eed212e9d241500366342088d9"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#aa4ee55eed212e9d241500366342088d9">m_errorBound</a></td></tr>
<tr class="memdesc:aa4ee55eed212e9d241500366342088d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The error bound.  <br /></td></tr>
<tr class="separator:aa4ee55eed212e9d241500366342088d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Approximately determines the point of a set contributing the least hypervolume. </p>
<p>See K. Bringmann, T. Friedrich. Approximating the least hypervolume contributor: NP-hard in general, but fast in practice. Proc. of the 5th International Conference on Evolutionary Multi-Criterion Optimization (EMO 2009), Vol. 5467 of LNCS, pages 6-20, Springer-Verlag, 2009.</p>
<p>The algorithm works by estimating a bounding box for every point that includes all its contribution volume and then draw sample inside the box to estimate which fraction of the box is covered by other points in the set.</p>
<p>The algorithm only implements the k=1 version of the smallest contribution. For the element A it returns holds the following guarantue: with probability of 1-delta, Con(A) &lt; (1+epsilon)Con(LC) where LC is true least contributor. Note that there are no error guarantuees regarding the returned value of the contribution: the algorithm stops when it is sure that the bound above holds, but depending on the setup, this might be very early.</p>
<p>Note that, while on average the algorithm performs reasonable well, the upper run-time is not bounded by the number of elements or dimensionality. When two points have nearly the same(or exactly the same) contribution the algorithm will run for many iterations, until the bound above holds. The same holds if the point with the smallest contribution has a very large potential contribution as many samples are required to establish that allmost all of the box is covered.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">random</td><td>The type of the random for sampling random points. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00065">65</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aceb0bba3d66b599e4762a59008da544a" name="aceb0bba3d66b599e4762a59008da544a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aceb0bba3d66b599e4762a59008da544a">&#9670;&#160;</a></span>HypervolumeContributionApproximator()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">shark::HypervolumeContributionApproximator::HypervolumeContributionApproximator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>C'tor. </p>

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00106">106</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a32cfcca40e4510e996dd41c9e3b428e1" name="a32cfcca40e4510e996dd41c9e3b428e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32cfcca40e4510e996dd41c9e3b428e1">&#9670;&#160;</a></span>delta() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double &amp; shark::HypervolumeContributionApproximator::delta </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00118">118</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">References <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a7f253b29cea34ab461913fdf1e77017d">m_errorProbability</a>.</p>

</div>
</div>
<a id="a57c159dc8900f273d0f0fd58147ee6d4" name="a57c159dc8900f273d0f0fd58147ee6d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57c159dc8900f273d0f0fd58147ee6d4">&#9670;&#160;</a></span>delta() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double shark::HypervolumeContributionApproximator::delta </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00115">115</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">References <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a7f253b29cea34ab461913fdf1e77017d">m_errorProbability</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_hypervolume_contribution.html#ab9c0d9bfbfd0a7290d1dad26f6b1a7c3">shark::HypervolumeContribution::approximationDelta()</a>, and <a class="el" href="structshark_1_1_hypervolume_contribution.html#ad69390eb1fc2b938ab7c4e75b29a07de">shark::HypervolumeContribution::approximationDelta()</a>.</p>

</div>
</div>
<a id="a4bc48c99de5ede9fa446b9b65403b27e" name="a4bc48c99de5ede9fa446b9b65403b27e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4bc48c99de5ede9fa446b9b65403b27e">&#9670;&#160;</a></span>epsilon() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double &amp; shark::HypervolumeContributionApproximator::epsilon </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00125">125</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">References <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#aa4ee55eed212e9d241500366342088d9">m_errorBound</a>.</p>

</div>
</div>
<a id="aaa63c8502accc68b992534217eb32169" name="aaa63c8502accc68b992534217eb32169"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa63c8502accc68b992534217eb32169">&#9670;&#160;</a></span>epsilon() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double shark::HypervolumeContributionApproximator::epsilon </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00122">122</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">References <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#aa4ee55eed212e9d241500366342088d9">m_errorBound</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_hypervolume_contribution.html#a3b68674011cf878a1c8e0053c82aa2e7">shark::HypervolumeContribution::approximationEpsilon()</a>, and <a class="el" href="structshark_1_1_hypervolume_contribution.html#a256082b054ca17a3bf55857dc0513975">shark::HypervolumeContribution::approximationEpsilon()</a>.</p>

</div>
</div>
<a id="afd86ee5e8fa2705b792017a024295c0c" name="afd86ee5e8fa2705b792017a024295c0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd86ee5e8fa2705b792017a024295c0c">&#9670;&#160;</a></span>serialize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Archive &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void shark::HypervolumeContributionApproximator::serialize </td>
          <td>(</td>
          <td class="paramtype">Archive &amp;&#160;</td>
          <td class="paramname"><em>archive</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>version</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00130">130</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">References <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#aa4ee55eed212e9d241500366342088d9">m_errorBound</a>, <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a7f253b29cea34ab461913fdf1e77017d">m_errorProbability</a>, <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a16d77f5544fdf01e8bfdd0427b3e00d3">m_gamma</a>, <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a47929916ab69b0e384479ae4c20cdb62">m_minimumMultiplierDelta</a>, <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a40c556d7c0d1176e67f795cb30abbcb7">m_multiplierDelta</a>, and <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a9171724d5683e143759001a10f9bbb2c">m_startDeltaMultiplier</a>.</p>

</div>
</div>
<a id="a6d452284d5ae1b104a992ce605e03baa" name="a6d452284d5ae1b104a992ce605e03baa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d452284d5ae1b104a992ce605e03baa">&#9670;&#160;</a></span>smallest() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Set &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; <a class="el" href="structshark_1_1_key_value_pair.html">KeyValuePair</a>&lt; double, std::size_t &gt; &gt; shark::HypervolumeContributionApproximator::smallest </td>
          <td>(</td>
          <td class="paramtype">Set const &amp;&#160;</td>
          <td class="paramname"><em>points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the index of the points with smallest contribution. </p>
<p>As no reference point is given, the extremum points can not be computed and are never selected.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">points</td><td>The set \(S\) of points from which to select the smallest contributor. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>The number of points to select. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00176">176</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">References <a class="el" href="_exception_8h.html#adce1f80097c69010f5eab2618fa2e971">SHARK_RUNTIME_CHECK</a>, and <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a5d9f9832db56f043a2f389ad5a386b55">smallest()</a>.</p>

</div>
</div>
<a id="a5d9f9832db56f043a2f389ad5a386b55" name="a5d9f9832db56f043a2f389ad5a386b55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d9f9832db56f043a2f389ad5a386b55">&#9670;&#160;</a></span>smallest() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Set , class <a class="el" href="_c_svm_linear_8cpp.html#ab106d665148183a2dc94dcf8716c9203">VectorType</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; <a class="el" href="structshark_1_1_key_value_pair.html">KeyValuePair</a>&lt; double, std::size_t &gt; &gt; shark::HypervolumeContributionApproximator::smallest </td>
          <td>(</td>
          <td class="paramtype">Set const &amp;&#160;</td>
          <td class="paramname"><em>points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="_c_svm_linear_8cpp.html#ab106d665148183a2dc94dcf8716c9203">VectorType</a> const &amp;&#160;</td>
          <td class="paramname"><em>reference</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines the point contributing the least hypervolume to the overall set of points. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">points</td><td>pareto front of points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>The number of points to select. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">reference</td><td>The reference point to consider for calculating individual points' contributions. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00145">145</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">References <a class="el" href="_exception_8h.html#adce1f80097c69010f5eab2618fa2e971">SHARK_RUNTIME_CHECK</a>, and <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a5d9f9832db56f043a2f389ad5a386b55">smallest()</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_hypervolume_contribution.html#acbf96ebbdb6fb438fb2efe64b235967d">shark::HypervolumeContribution::smallest()</a>, <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a6d452284d5ae1b104a992ce605e03baa">smallest()</a>, <a class="el" href="structshark_1_1_hypervolume_contribution.html#a46626da682183658b940865fd4589506">shark::HypervolumeContribution::smallest()</a>, and <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a5d9f9832db56f043a2f389ad5a386b55">smallest()</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="aa4ee55eed212e9d241500366342088d9" name="aa4ee55eed212e9d241500366342088d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4ee55eed212e9d241500366342088d9">&#9670;&#160;</a></span>m_errorBound</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double shark::HypervolumeContributionApproximator::m_errorBound</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The error bound. </p>

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00103">103</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a4bc48c99de5ede9fa446b9b65403b27e">epsilon()</a>, <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#aaa63c8502accc68b992534217eb32169">epsilon()</a>, and <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#afd86ee5e8fa2705b792017a024295c0c">serialize()</a>.</p>

</div>
</div>
<a id="a7f253b29cea34ab461913fdf1e77017d" name="a7f253b29cea34ab461913fdf1e77017d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f253b29cea34ab461913fdf1e77017d">&#9670;&#160;</a></span>m_errorProbability</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double shark::HypervolumeContributionApproximator::m_errorProbability</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The error probability. </p>

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00102">102</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a32cfcca40e4510e996dd41c9e3b428e1">delta()</a>, <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#a57c159dc8900f273d0f0fd58147ee6d4">delta()</a>, and <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#afd86ee5e8fa2705b792017a024295c0c">serialize()</a>.</p>

</div>
</div>
<a id="a16d77f5544fdf01e8bfdd0427b3e00d3" name="a16d77f5544fdf01e8bfdd0427b3e00d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16d77f5544fdf01e8bfdd0427b3e00d3">&#9670;&#160;</a></span>m_gamma</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double shark::HypervolumeContributionApproximator::m_gamma</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00101">101</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#afd86ee5e8fa2705b792017a024295c0c">serialize()</a>.</p>

</div>
</div>
<a id="a47929916ab69b0e384479ae4c20cdb62" name="a47929916ab69b0e384479ae4c20cdb62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47929916ab69b0e384479ae4c20cdb62">&#9670;&#160;</a></span>m_minimumMultiplierDelta</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double shark::HypervolumeContributionApproximator::m_minimumMultiplierDelta</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00099">99</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#afd86ee5e8fa2705b792017a024295c0c">serialize()</a>.</p>

</div>
</div>
<a id="a40c556d7c0d1176e67f795cb30abbcb7" name="a40c556d7c0d1176e67f795cb30abbcb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40c556d7c0d1176e67f795cb30abbcb7">&#9670;&#160;</a></span>m_multiplierDelta</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double shark::HypervolumeContributionApproximator::m_multiplierDelta</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00098">98</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#afd86ee5e8fa2705b792017a024295c0c">serialize()</a>.</p>

</div>
</div>
<a id="a9171724d5683e143759001a10f9bbb2c" name="a9171724d5683e143759001a10f9bbb2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9171724d5683e143759001a10f9bbb2c">&#9670;&#160;</a></span>m_startDeltaMultiplier</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double shark::HypervolumeContributionApproximator::m_startDeltaMultiplier</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_hypervolume_contribution_approximator_8h_source.html#l00097">97</a> of file <a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_hypervolume_contribution_approximator.html#afd86ee5e8fa2705b792017a024295c0c">serialize()</a>.</p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>include/shark/Algorithms/DirectSearch/Operators/Hypervolume/<a class="el" href="_hypervolume_contribution_approximator_8h_source.html">HypervolumeContributionApproximator.h</a></li>
</ul>
</div><!-- contents -->
</div>
</body>
</html>
